package chan.project.smartlawservice.AiService;

import chan.project.smartlawmodel.dto.ai.DailyConsultationVo;
import chan.project.smartlawmodel.dto.ai.TextParseRequest;
import chan.project.smartlawmodel.dto.data.LegalCase;
import chan.project.smartlawmodel.vo.LegalCaseVo;
import chan.project.smartlawservice.config.FeignInterceptor;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import reactor.core.publisher.Flux;

@FeignClient(value = "AIService",
        configuration = FeignInterceptor.class,
        path = "/api/AI")
public interface AiFeignClient {

    @GetMapping("/inner/daily")
    DailyConsultationVo dailyPrompt(@RequestParam("message") String message);

    @PostMapping("/inner/parse")
    Flux<String> parseText(@RequestBody TextParseRequest textParseRequest);

    @PostMapping("/inner/litigationSimulator")
    LegalCaseVo litigationSimulator(@RequestBody LegalCase legalCase);
}
